The invention relates to a method and apparatus for installing and executing programs by a computer and more specifically to a method and apparatus for installing and executing programs by a multi-user computer.
Computer systems can be broadly divided into two categories; single user systems and multi-user systems. Single user systems are those in which one user will have control of the processor for the duration of use. Multi-user systems are those in which the computer will permit several users to time-share the processor substantially simultaneously. That is, each user periodically is given a time-slice of the limited amount of computation time available, in a round-robin fashion.
In multi-user systems the computer is capable of executing an application program for one user and, when that user""s time-slice of the available computation time is completed, saving the state of the processor and the state of the program so that the application program can be stopped and another user""s application program begun. When the first user""s time-slice occurs again, the processor will reload the application program, the state of the machine and the state of the program and resume executing the program where the computer left off during the previous time-slice.
When an application program begins to execute, it typically accesses initialization data, typically but not necessarily within an initialization file, which typically contains user specific data regarding how the program is to be executed. For example, a word processing program may have initialization data which specifies what icons the user has defined, what screen colors are to be used and how the screen is to appear geometrically. When an application is developed for use in a multi-user environment, the program is constructed to maintain separate user contexts so that the program uses specific initialization data for each user. Applications developed for single user computers do not typically have the ability to maintain separate user contexts. This is due to the fact that an application developed for a single user computer expects to have only one user context.
With the advent of computer networks, the issue arises that what may have been a single user computer running a single user application is now being used as a network execution server, providing single user application execution for multiple users. A single user application executed from a network execution server must now keep track of the application initialization data which are created for each user.
The present invention addresses this problem thereby permitting single user applications to be executed in multi-user environments.
The invention relates to a method of installing and executing a single user application on a multi-user system. The method includes the steps of installing a single user application using the installation program of the application, placing the application initialization data in a predetermined location in data storage, obtaining initialization data corresponding to the single user application from the predetermined location in data storage, copying the initialization data into a user specific initialization data location, and executing the single user application using the user specific initialization data. In one embodiment the step of copying the initialization data copies the initialization data into a specified user directory. In another embodiment the step of copying the initialization data includes the step of renaming the initialization data with a unique user name.
The invention also relates to an apparatus for installing and executing a single user application on a multi-user system. The apparatus includes a process installing a single user application, a process placing the application initialization data in a predetermined location in data storage, a process obtaining initialization data corresponding to the single user application from the predetermined location in data storage, a process copying the initialization data into a user specific initialization data, and a process executing the single user application using the user specific initialization data. In one embodiment the process copying the initialization data copies the initialization data into a specified directory. In another embodiment the process copying the initialization data renames the initialization data with a unique user name.